One or more aspects relate, in general, to processing within a computing environment, and in particular, to facilitating such processing.
Many computing systems use a Global Offset Table (GOT) or a Table of Contents (TOC) to populate variables within source code. For instance, a compiler generates object code from source code, without knowing the final address or displacement of the code/data. Specifically, the compiler generates object code that will access a variable address reference data structure (e.g., a Global Offset Table or a Table of Contents) for variable values without knowing the final size of the data structure or offsets/addresses of various data sections. Placeholders for this information are left in the object code and updated by a linker.
To access the GOT or TOC, a pointer is used. The pointer is typically computed by a sequence of instructions. These instructions often depend on computed registers which are not always readily available in a processor. Consequently, accesses to variables that depend on the TOC (i.e., variables other than local variables) may be delayed.